// thread example
#include <iostream>       // std::cout
#include <thread>         // std::thread
 
void foo() 
{
  // do stuff...
}

void bar(int x)
{
  // do stuff...
}

int main() 
{
  std::thread first(foo);     // 生成调用foo函数的新的线程
  std::thread second(bar, 0);  // 生成调用bar函数并且传入参数的新的线程

  std::cout << "main, foo and bar now execute concurrently...\n";

  first.join();                // 线程收尸（等待线程执行完成）
  second.join();

  std::cout << "foo and bar completed.\n";

  return 0;
}
